home *** CD-ROM | disk | FTP | other *** search
- subject: A Tool for Resolving Problems date: November 18, 1986
- with EGA Software Run on PC6300
-
-
-
- ABSTRACT
-
-
- A tool and technique is presented to aid in resolving
- the cause of failures of some software when run on a PC
- 6300 equipped with an Enhanced Graphics Adapter (EGA).
- This method is relatively easy and quick and valuable
- when it is suspected that the failure may be caused by
- OUT-word instructions. It is well known that the Bus
- Converter circuit on the Bus Expansion board of the PC
- 6300 sends out the two bytes of a word to the 8-bit
- bus in a sequence (high byte first to the high
- address) opposite to that done by the IBM PC XT.
- Although normally this is not a problem, it could be
- for some boards like EGA.
-
- MEMORANDUM FOR FILE
-
- 1.0 Introduction
-
- The purpose of this memorandum is to discuss
- the use of a technique for easily verifying whether
- the PC 6300 Bus Converter is causing some observed EGA
- software failures.
-
-
- 2.0 Background
-
- Periodically software packages are found that
- are designed to run with EGA but will not operate
- properly on a PC 6300 equipped with EGA. It is very
- often suspected that the cause is the Bus Converter
- circuit. *This circuit, which is part of the Bus
- expansion board, performs the required 16-bit to 8-bit
- bus conversions, When doing the 16-to-8 conversion,
- for example, it sends out the high address before it
- sends out the high byte to the high address before it
- sends out the low byte to the low address. This is
- opposite in sequence to what the IBM PC XT does. This
- difference normally is not a problem because most
- boards on the 8-bit bus are not dependent on byte
- sequence. However, it is often important for boards
- like the Color Graphics Adapter (CGA) and the EGA.
- 3.0 Problem
-
- Since the extent to which a particular
- software package uses OUT instructions that are word
- instead of byte oriented is not known, the exact cause
- of the failure is usually not known for certain and the
- amount of effort needed tko fix the problem is also
- uncertain. This situation leads to long delays in
- resolving these failures. These problems come to the
- attention of a variety of people including developers,
- system testers, HOTLINE, product management, etc. Yet,
- patching the executable file of some unfamiliar piece
- of software is usually best left to an expert.
-
- 4.0 Solution
-
- A simple technique has been used successfully
- to quickly patch an otherwise unfamiliar program
- suspected of suffering from the OUT-word problem.
- Although there are several types of OUT instructions,
- the "OUT DX, AX" instruction is very popular. It is a
- single byte instruction with opcode "EF". By using the
- DEBUG program, all occurrences of these OUT-word
- instructions can be found. By replacing all of these
- "EF" opcodes with the single byte "INT 3"
- instruction with opcode "CC", a short program can be
- substituted for every occurrence of these OUT-word
- instructions. The program uses OUT-byte instructions
- and sends out the two bytes in the correct order.
- Since the program is driven by an interrupt, it can be
- installed and make resident separately while the
- application program is patched simply by single byte
- substitutions. This method, of course, can be extended
- to other OUT instructions. The use of INT 3 is very
- convenient but precludes use of the DEBUG program on
- the patched application program because it also uses
- INT 3. This method is meant only as a temporary quick
- fix and not a final patch.
-
- 5.0 Implementation
-
- 1) Install the patches on a backup copy of
- the application program (e.g., xyz) by the following
- sequence of commands:
-
- copy xyz.exe xyz.tmp
- debug xyz.tmp < xyz.fix
- rename xyz.tmp xyz.exe
-
- If already available,
- xyz.fix contains the editing script for DEBUG.
- If not available, do the debug manually.
-
- NOTE: DO NOT PERFORM THIS PATCH ON YOUR
- ORIGINAL COPY OF XYZ.EXE;USE ONLY A BACKUP
- COPY.
-
- 2) Whenever running the xyz program, first
- run outfix.com to make the INT 3 program resident by the
- following sequence of commands:
-
- outfix
- xyz
-
- See Appendix A for outfix.com
-
- Appendix B shows, as an example, the word.fix file to
- patch MS-WORD. (As an exercise try fixing LEARN, which
- also needs to be patched. See Appendix B.)
-
- Appendix C shows, as another example, the egapaint.fix
- file to patch EGAPAINT.
-
- Appendix D shows, as a final example, the mona.fix file
- to patch the MONA demonstration program.
-
- 6.0 Conclusion
-
- A useful technique has been demonstrated for
- quickly patching application software which previously
- had problems running on a PC 6300 equipped with EGA.
-
- *********************************************************************
-
- Note: See the appended files which are identified as follows in the text:
-
- Appendix A = OUTFIX.ASM
- Appendix B = WORD.FIX
- = LEARN.FIX
- Appendix C = EGAPAINT.FIX
- Appendix D = MONA.FIX
-